<template>


	<web-view class="webb" :src="url" update-title="false" @message="mini_message" webview-styles="webviewStyles">
	</web-view>


</template>

<script>
	import Request from '@/utils/luch-request/index.js'
	const http = new Request();
	import {
		domain,
		myurl,
		pluginapi
	} from '@/utils/api.js';

	var wv; //计划创建的webview
	export default {
		data() {
			return {
				domain: domain,
				url: '',
				myurl: '',
				searchurl: '',
				frontColor: '',
				backgroundColor: '',

				webView: '',
				weburl: "",
				sharetitle: '',
				webviewStyles: {
					progress: false //必须要设置为false

				}
			};
		},
		/**
		 * 生命周期函数--监听页面加载
		 */
		onLoad: function(options) {
			if (!options.q) {
				this.weburl = decodeURIComponent(options.url);
			} else {
				this.weburl = decodeURIComponent(options.q);
			}

			this.getData(options);

		},
		onReady() {
			this.setStyle(); 
			// #ifdef APP-PLUS


			var currentWebview = this.$scope.$getAppWebview();
			var wv = currentWebview.children()[0];
			currentWebview.append(wv);
			setTimeout(function() {
				wv.appendJsFile('/static/script.js'); 

			}, 600)
 
			// #endif 

		},
		onShow() {

		},
		// onBackPress(e) {

		// 	let pages = getCurrentPages()
		// 	let page = pages[pages.length - 1];
		// 	let currentPages = page.$getAppWebview()
		// 	page.$getAppWebview().close()

		// 	return false
		// },
		onBackPress(e) {
			console.log("onBackPress e:" + JSON.stringify(e))
			// 在这里直接默认所有的返回键操作都去执行h5的方法
			// this.$refs.webView.evalJS("window.myHistory()")
			// return true; // 返回true 表示不执行返回键默认操作
		},
		onNavigationBarButtonTap(e) {
			var index = e.index;

			console.log(e.index)
			if (e.index == 2) {
				var pathvalue = '/pages/webview/webview?url=' + encodeURIComponent(this.searchurl);
				uni.navigateTo({
					url: pathvalue
				})
			};
			if (e.index == 1) {
				var homeurl = getApp().globalData.url;
				var pathvalue = '/pages/webview/webview?url=' + encodeURIComponent(this.myurl);
				uni.navigateTo({
					url: pathvalue
				})
			}
			if (e.index == 0) {
				var homeurl = getApp().globalData.url;
				var pathvalue = '/pages/webview/webview?url=' + encodeURIComponent(this.indexurl);
				uni.navigateTo({
					url: pathvalue
				})
			}
		},

		methods: {
 
			operation() {
				// #ifdef APP-PLUS
				// 此对象相当于html5plus里的plus.webview.webView()。
				// 在uni-app里vue页面直接使用plus.webview.webView()无效，
				// 非v3编译模式使用this.$mp.page.$getAppWebview()
				this.webView = this.$mp.page.$getAppWebview().children()[0]
				//如果是页面初始化调用时，需要 setTimeout 延时一下
				// #endif
			},
			mini_message: function(e) {
				var data = e.detail.data[e.detail.data.length - 1];
				var datatitle = data.title
				this.title = datatitle.replace("- 手机版 - Powered by Discuz!", "");
				console.log('来自webview的消息', e)

			},

			getData: function(options) {
				http.get(pluginapi).then(res => {
					// console.log(res.data)
					getApp().globalData.sharetitle = res.data.name + '-' + res.data.dec;
					this.indexurl = res.data.url || domain;
					if (!options.url) {
						this.url = res.data.url || domain;
					} else {
						this.url = this.weburl;
					}
					this.myurl = res.data.myurl;
					this.searchurl = res.data.scurl;
					this.navtitle = res.data.name;
					getApp().globalData.frontColor = res.data.frcolor;
					getApp().globalData.backgroundColor = res.data.bgcolor;
					uni.setNavigationBarColor({
						frontColor: getApp().globalData.frontColor,
						backgroundColor: getApp().globalData.backgroundColor,

					})



				}).catch(err => {

				})

			},
			setStyle: function(options) {
				// #ifdef APP-PLUS
				let height = 0; //定义动态的高度变量
				let statusbar = 0; // 动态状态栏高度
				uni.getSystemInfo({ // 获取当前设备的具体信息
					success: (sysinfo) => {
						statusbar = sysinfo.statusBarHeight + 44;
						height = sysinfo.windowHeight;
					}
				});

				let currentWebview = this.$scope.$getAppWebview(); //获取当前web-view

				setTimeout(function() {
					var wv = currentWebview.children()[0];

					var url = wv.getURL();
					console.log('=== url ===', url);
					wv.overrideUrlLoading({
						mode: 'reject',
						match: '.*'
					}, function(e) {
						console.log('reject url: ' + e.url);
						var pathvalue = '/pages/webview/webview?url=' + encodeURIComponent(e.url);
						uni.navigateTo({
							url: pathvalue
						})
					});
				}, 1000); //如页面初始化调用需要写延迟



				uni.onWindowResize((res) => {
					var wv = currentWebview.children()[0];
					if (res.size.windowHeight < height) {
						//高度缩小
						setTimeout(function() {
							wv.setStyle({ //设置web-view距离顶部的距离以及自己的高度，单位为px
								top: statusbar, //此处是距离顶部的高度，应该是你页面的头部
								height: height - 260, //webview的高度
								bottom: 0, //防止输入框被软键盘遮挡
								scalable: true, //webview的页面是否可以缩放，双指放大缩小

							})
						}, 100); //如页面初始化调用需要写延迟

					} else {
						//高度还原
						setTimeout(function() {
							wv.setStyle({ //设置web-view距离顶部的距离以及自己的高度，单位为px
								top: statusbar, //此处是距离顶部的高度，应该是你页面的头部
								height: height, //webview的高度
								bottom: 0, //防止输入框被软键盘遮挡
								scalable: true, //webview的页面是否可以缩放，双指放大缩小

							})
						}, 100); //如页面初始化调用需要写延迟
					}
				})
				// #endif

			},


		},
		onShareAppMessage: function(options) {
			this.sharetitle = getApp().globalData.sharetitle;
			var that = this
			var return_url = options.webViewUrl;
			// 从首页跳转
			// var pathvalue = '/pages/index/index?from=webview&url=' + encodeURIComponent(return_url); 
			var pathvalue = '/pages/webview/webview?url=' + encodeURIComponent(return_url);
			return {
				title: this.title ? this.title : this.sharetitle,
				path: pathvalue,
			}
		},

	};
</script>
<style lang="scss">

</style>
